PyBrain দিয়ে একটি সম্পূর্ণ Neural Network প্রজেক্ট

বাস্তব উদাহরণ এবং প্রজেক্ট ডেমো - পাইব্রেইন (PyBrain) - Machine Learning

277

এখানে আমরা PyBrain লাইব্রেরি ব্যবহার করে একটি সম্পূর্ণ Neural Network প্রজেক্ট তৈরি করব। এই প্রজেক্টটি একটি সাধারণ Binary Classification সমস্যা সমাধান করবে, যেখানে আমাদের লক্ষ্য হবে একটি ডেটাসেটের ইনপুট ফিচারের ভিত্তিতে শ্রেণীবিভাগ করা (যেমন, 0 বা 1)।

আমরা একটি XOR Dataset ব্যবহার করব, যা মেশিন লার্নিং মডেল ট্রেনিং এর জন্য একটি সাধারণ সমস্যা। এটি ৪টি ইনপুট স্যাম্পল দিয়ে গঠিত, এবং প্রতিটি ইনপুটের জন্য একটি আউটপুট থাকবে (0 বা 1)।


প্রজেক্টের ধাপসমূহ

  1. ডেটা তৈরি করা: XOR ডেটাসেট তৈরি করব।
  2. নিউরাল নেটওয়ার্ক তৈরি করা: PyBrain ব্যবহার করে একটি সাধারণ নিউরাল নেটওয়ার্ক তৈরি করব।
  3. মডেল ট্রেনিং: আমাদের নিউরাল নেটওয়ার্ক ট্রেন করব।
  4. মডেল টেস্টিং: টেস্ট ডেটা দিয়ে মডেলটিকে টেস্ট করব এবং ফলাফল দেখব।

১. ডেটা তৈরি করা (XOR Dataset)

প্রথমে, XOR সমস্যার জন্য একটি ডেটাসেট তৈরি করি, যেখানে ৪টি ইনপুট স্যাম্পল থাকবে এবং তাদের আউটপুট হবে 0 বা 1।

from pybrain.datasets import SupervisedDataSet

# XOR ডেটাসেট তৈরি
dataset = SupervisedDataSet(2, 1)  # 2 ইনপুট এবং 1 আউটপুট

# XOR ডেটা স্যাম্পল যোগ করা
dataset.addSample([0.0, 0.0], [0.0])  # XOR: 0 ^ 0 = 0
dataset.addSample([0.0, 1.0], [1.0])  # XOR: 0 ^ 1 = 1
dataset.addSample([1.0, 0.0], [1.0])  # XOR: 1 ^ 0 = 1
dataset.addSample([1.0, 1.0], [0.0])  # XOR: 1 ^ 1 = 0

এখানে SupervisedDataSet ব্যবহৃত হয়েছে যেখানে 2 ইনপুট ফিচার এবং 1 আউটপুট থাকে।


২. নিউরাল নেটওয়ার্ক তৈরি করা

এখন PyBrain ব্যবহার করে একটি সাধারণ নিউরাল নেটওয়ার্ক তৈরি করি। আমরা 2 ইনপুট, 3 হিডেন লেয়ার এবং 1 আউটপুটের নিউরাল নেটওয়ার্ক তৈরি করব।

from pybrain.tools.shortcuts import buildNetwork

# নিউরাল নেটওয়ার্ক তৈরি (2 ইনপুট, 3 হিডেন, 1 আউটপুট)
network = buildNetwork(2, 3, 1)

# নেটওয়ার্কের গঠন দেখানো
print(network)

এখানে buildNetwork ফাংশন দিয়ে আমরা 2 ইনপুট, 3 হিডেন, এবং 1 আউটপুট লেয়ারসহ নিউরাল নেটওয়ার্ক তৈরি করেছি।


৩. মডেল ট্রেনিং

এখন আমরা আমাদের নিউরাল নেটওয়ার্ক ট্রেন করব। Backpropagation ট্রেনিং অ্যালগরিদম ব্যবহার করে নেটওয়ার্কটি ট্রেন করা হবে।

from pybrain.supervised import BackpropTrainer

# ট্রেনার তৈরি করা
trainer = BackpropTrainer(network, dataset)

# মডেল ট্রেনিং
trainer.trainEpochs(1000)  # 1000 epochs এর জন্য ট্রেনিং করা

# মডেলটির পারফরম্যান্স দেখানো
print("Trained Model:", network)

এখানে BackpropTrainer ব্যবহার করে আমরা আমাদের ডেটাসেটের উপর নেটওয়ার্কটি ট্রেন করেছি এবং 1000 epochs পর্যন্ত ট্রেনিং চালিয়েছি।


৪. মডেল টেস্টিং

টেস্ট ডেটার উপর আমাদের ট্রেন করা মডেলটি পরীক্ষা করি। XOR ডেটাসেটের জন্য আমরা ইনপুট ফিচার প্রদান করে তার আউটপুট পাব।

# টেস্ট ডেটা দিয়ে প্রেডিকশন করা
output_0_0 = network.activate([0.0, 0.0])  # XOR: 0 ^ 0
output_0_1 = network.activate([0.0, 1.0])  # XOR: 0 ^ 1
output_1_0 = network.activate([1.0, 0.0])  # XOR: 1 ^ 0
output_1_1 = network.activate([1.0, 1.0])  # XOR: 1 ^ 1

# প্রেডিকশন প্রদর্শন
print(f"Prediction for [0.0, 0.0]: {output_0_0}")
print(f"Prediction for [0.0, 1.0]: {output_0_1}")
print(f"Prediction for [1.0, 0.0]: {output_1_0}")
print(f"Prediction for [1.0, 1.0]: {output_1_1}")

এখানে আমরা আমাদের ট্রেন করা নেটওয়ার্কে ৪টি ইনপুট প্রদান করেছি এবং তাদের আউটপুট প্রেডিক্ট করেছি। আউটপুটগুলি 0 অথবা 1 হওয়া উচিত, যা XOR এর নিয়ম অনুসারে হবে।


পুরো কোড:

from pybrain.datasets import SupervisedDataSet
from pybrain.tools.shortcuts import buildNetwork
from pybrain.supervised import BackpropTrainer

# XOR ডেটাসেট তৈরি
dataset = SupervisedDataSet(2, 1)
dataset.addSample([0.0, 0.0], [0.0])
dataset.addSample([0.0, 1.0], [1.0])
dataset.addSample([1.0, 0.0], [1.0])
dataset.addSample([1.0, 1.0], [0.0])

# নিউরাল নেটওয়ার্ক তৈরি (2 ইনপুট, 3 হিডেন, 1 আউটপুট)
network = buildNetwork(2, 3, 1)

# ট্রেনার তৈরি করা
trainer = BackpropTrainer(network, dataset)

# মডেল ট্রেনিং
trainer.trainEpochs(1000)

# টেস্ট ডেটা দিয়ে প্রেডিকশন করা
output_0_0 = network.activate([0.0, 0.0])  # XOR: 0 ^ 0
output_0_1 = network.activate([0.0, 1.0])  # XOR: 0 ^ 1
output_1_0 = network.activate([1.0, 0.0])  # XOR: 1 ^ 0
output_1_1 = network.activate([1.0, 1.0])  # XOR: 1 ^ 1

# প্রেডিকশন প্রদর্শন
print(f"Prediction for [0.0, 0.0]: {output_0_0}")
print(f"Prediction for [0.0, 1.0]: {output_0_1}")
print(f"Prediction for [1.0, 0.0]: {output_1_0}")
print(f"Prediction for [1.0, 1.0]: {output_1_1}")

সারাংশ:

  • Dataset: XOR ডেটাসেট তৈরি করা হয়েছে, যেখানে ৪টি ইনপুট স্যাম্পল থাকবে এবং তাদের আউটপুট হবে 0 বা 1।
  • Neural Network: PyBrain ব্যবহার করে একটি সহজ নিউরাল নেটওয়ার্ক তৈরি করা হয়েছে, যেখানে 2 ইনপুট, 3 হিডেন লেয়ার এবং 1 আউটপুট লেয়ার রয়েছে।
  • Training: Backpropagation ট্রেনিং অ্যালগরিদম ব্যবহার করে মডেলটি 1000 epochs ট্রেন করা হয়েছে।
  • Testing: টেস্ট ডেটা দিয়ে মডেলটিকে পরীক্ষা করা হয়েছে এবং আউটপুট দেখানো হয়েছে।

এই প্রজেক্টটি একটি সাধারণ নিউরাল নেটওয়ার্ক তৈরি এবং ট্রেন করার প্রক্রিয়া দেখায়, যা PyBrain লাইব্রেরি ব্যবহার করে একটি সহজ binary classification সমস্যা সমাধান করছে।

Content added By
Promotion

Are you sure to start over?

Loading...